#pragma once

#include "Control_Visible.h"

#include "Control_Interface.h"

namespace gui
{
	class Renderer;

	class Control_Menu : public Control_Visible
	{
		friend Host;
		friend Control_Body;

	public:
		Control_Menu(std::string NewName, ColorRGBA<unsigned char> NewBackColor, Vec<2, float> NewPos, Vec<2, float> NewSize, Host& NewParentHost);
		virtual ~Control_Menu(void);
	
		void AddControl(Control_Base* NewControl);

	protected:
		std::string Name;

	private:
		float Layer;

		virtual void Refresh();

		virtual void UpdateVerticesFix(RendererComponent& Renderer);
		virtual void UpdateVerticesSlow(RendererComponent& Renderer);

		virtual void MouseMove();
		virtual void MouseUpLeft();
		virtual void MouseUpRight();
		virtual void MouseDownLeft();
		virtual void MouseDownRight();
		virtual void MouseWheelMove();
		virtual void TextEntered();

	//private:
		std::vector<Control_Base*> Controls;
	};
}